package com.njupt.yanglonglong.report.demo.utils;

import com.njupt.yanglonglong.report.demo.config.minio.MinioProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

/**
 * @className: StringParseUtil
 * @Description: util
 * @author: lpl
 * @date: 2021/5/13 15:19
 */
@Component
public class StringParseUtil {

    /**
     * Spring 不支持依赖注入 static 静态变量
     * 首先 Spring 要能扫描到 MinioProperties 的 bean，然后通过 setter 方法注入；
     * 注意：成员变量上不需要再添加 @Autowired 注解；
     */
    private static MinioProperties minioProperties;

    @Autowired
    public void setMinioProperties(MinioProperties properties) {
        StringParseUtil.minioProperties = properties;
    }


    /**
     * 从url中截取文件名
     *
     * @param fileUrl 总长度url
     * @return 文件名
     * @throws UnsupportedEncodingException e
     */
    public static String getFileNameFromUrl(String fileUrl) throws UnsupportedEncodingException {
        String urlPrefix = minioProperties.getUrl() + minioProperties.getBucketName() + "/";
        String decode = URLDecoder.decode(fileUrl, StandardCharsets.UTF_8);
        return decode.substring(urlPrefix.length(), decode.indexOf("?"));
    }

}
